今天閱讀「適用於 Android 開發人員的 Jetpack Compose」第一章「Compose 基礎知識」的「實際進行設計」的 8~15 小章
LazyHorizontalGrid可以想成 RecyclerView 的 GridLayoutManager,同一個項目多種排列方式
rows的GridCells.Fixed()設定數量就好LazyHorizontalGrid(
   rows = GridCells.Fixed(數量),
   modifier = modifier
) {
   items(favoriteCollectionsData) { item ->
   }
}
名字,所以使用Slot API來處理
content: @Composable () -> Unit
Row或Column來排版fun HomeSection(
   @StringRes title: Int,
   modifier: Modifier = Modifier,
   content: @Composable () -> Unit    //這邊放入 1.
) {
   Column(modifier) {
       Text(stringResource(title))    //這邊放入 2.
       content()
   }
}
Spacer來隔開
fun HomeScreen(modifier: Modifier = Modifier) {
   Column(modifier) {
       Spacer(Modifier.height(16.dp))    //間距 16dp
       SearchBar(Modifier.padding(horizontal = 16.dp))
       HomeSection(title = R.string.align_your_body) {
           AlignYourBodyRow()
       }
       Spacer(Modifier.height(16.dp))    //間距 16dp
       HomeSection(title = R.string.favorite_collections) {
           FavoriteCollectionsGrid()
       }
       Spacer(Modifier.height(16.dp))    //間距 16dp
   }
}
modifier設定上下滑動verticalScroll或左右滑動horizontalScroll,再放入rememberScrollState()就行,簡單說就是把他當ScrollView來用
Column(
   modifier
       .verticalScroll(rememberScrollState())
) {
}
NavigationBar來當 ViewPager 用,不過今年 Google IO 已經說 ViewPager 支持 ComposeWindowSizeClass判斷目前視窗大小
fun MySootheApp(windowSize: WindowSizeClass) {
   when (windowSize.widthSizeClass) {
       WindowWidthSizeClass.Compact -> {
           MySootheAppPortrait()    //直向畫面顯示的 UI
       }
       WindowWidthSizeClass.Expanded -> {
           MySootheAppLandscape()    //橫向畫面顯示的 UI
       }
   }
}